import store from '../store';
import Cache from '../utils/cache';

// 注意：系统中token的存储存在不一致性
// 1. 在index.vue和request.js中直接使用小写的'token'
// 2. 在config/cache.js中定义了LOGIN_STATUS常量
// 为了保持兼容性，这里优先使用小写的'token'

// 移除防抖，让弹窗能立即触发
// export const toLogin = Debounce(_toLogin, 800)
export function toLogin(push, pathLogin) {
  // 不再跳转到登录页面，而是通过全局事件触发首页的登录弹窗
  console.log('触发登录弹窗');
  
  // 清除存储的token和用户信息
  // 直接使用小写的token以兼容现有代码
  uni.removeStorageSync('token');
  uni.removeStorageSync('userInfo');
  
  // 更新vuex状态
  store.commit("LOGOUT");
  
  // 触发全局登录弹窗事件
  if (typeof uni !== 'undefined') {
    uni.$emit('showLoginModal');
  }
  
  // 如果当前不是首页，则切换到首页
  const pages = getCurrentPages();
  const currentPage = pages[pages.length - 1];
  if (currentPage && currentPage.route !== 'pages/index/index') {
    uni.switchTab({
      url: '/pages/index/index'
    });
  }
}

// 校验登陆状态
export function checkLogin() {
  // 直接使用小写的token以兼容现有代码
  let token = uni.getStorageSync('token');
  let newTime = Math.round(new Date() / 1000);
  
  // 简化判断逻辑，只要没有token就视为未登录
  if (!token) {
    uni.removeStorageSync('token');
    uni.removeStorageSync('userInfo');
    return false;
  } else {
    // 更新vuex状态
    store.commit('LOGIN', token);
    
    // 获取用户信息
    let userInfo = uni.getStorageSync('userInfo');
    if (userInfo) {
      store.commit('UPDATE_USERINFO', userInfo);
    }
    return true;
  }
}
